﻿$(function () {
    var h = $(window).height();
    resizeLayout();
    $('#dgRole').datagrid({
        loadMsg: "Load Data...",
        iconCls: 'icon-reload',
        url: '',
        idField: 'RoleID',
        hight: document.documentElement.clientHeight - 80,
        autoRowHeight: false,   // 自动行高（可能导致行高不一致）
        fitColumns: false,      // 不自动适应列宽（需要手动设置列宽）
        scrollbarSize: 18,       // 滚动条宽度设为0（可能影响布局）
        pageSize: 20,           // 每页20条
        striped: true,          // 隔行变色
        singleSelect: true,     // 单选模式
        pagination: true,       // 显示分页
        rownumbers: true,        // 显示行号
        sortable: true,
        columns: [[
            { field: 'RoleID', checkbox: true },
            { field: 'RoleNO', title: 'RoleNO', sortable: true, width: 150 },
            { field: 'RoleName', title: 'RoleName', width: 150 },
            { field: 'RStateName', title: 'Recorde State', width: 150 },
            { field: 'CreateTime', title: 'CreateTime', width: 150 },
            { field: 'CreateUser', title: 'CreateUser', width: 150 },
            { field: 'UpdateTime', title: 'UpdateTime', width: 150 },
            { field: 'UpdateUser', title: 'UpdateUser', width: 150 },
            { field: 'RState', hidden: true }
        ]],
        onresize: function () {
            // 动态计算高度，留出分页栏空间
            var pagerHeight = $('.datagrid-pager').outerHeight(true);
            $(this).datagrid('getPanel').panel('resize', {
                height: '100%',
                marginBottom: pagerHeight
            });
        },
        onLoadSuccess: function (data) {
            $('#dgRole').datagrid("fillRows");
            $('#dgRole').datagrid('resize');
        },
        onSortColumn: function (order, sort) {
            $("#hSort").val(sort);
            $("#hOrder").val(order);
            /*      loadLocal();*/
        },
        onClickRow: function (index, row) {
            if (row == null) {
                Alert("Please Select One Row");
                return false;
            }
            $('#hRoleID').val(row.RoleID);
            QueryUser();
            QueryMenu();
        }
    });

    $('#dgUser').datagrid({
        loadMsg: "Load Data...",
        iconCls: 'icon-reload',
        url: '',
        idField: 'UserID',
        hight: document.documentElement.clientHeight - 100,
        autoRowHeight: false,   // 自动行高（可能导致行高不一致）
        fitColumns: false,      // 不自动适应列宽（需要手动设置列宽）
        scrollbarSize: 20,       // 滚动条宽度设为0（可能影响布局）
        pageSize: 20,           // 每页20条
        striped: true,          // 隔行变色
        singleSelect: false,     // 单选模式
        pagination: false,       // 显示分页
        rownumbers: true,        // 显示行号
        sortable: true,
        columns: [[
            {
                field: 'IsSelect',
                formatter: function (value, row, index) {
                    return '<input type="checkbox" ' + (value ? 'checked' : '') + '>';
                }
            },
            { field: 'UserNO', title: 'UserNO', sortable: true, width: 150 },
            { field: 'UserName', title: 'UserName', width: 150 },
            { field: 'RStateName', title: 'Recorde State', width: 150 },
            { field: 'CreateTime', title: 'CreateTime', width: 150 },
            { field: 'CreateUser', title: 'CreateUser', width: 150 },
            { field: 'UpdateTime', title: 'UpdateTime', width: 150 },
            { field: 'UpdateUser', title: 'UpdateUser', width: 150 },
            { field: 'RState', hidden: true },
            { field: 'UserID', hidden: true }
        ]],
        onLoadSuccess: function (data) {
            //$('#dgUser').datagrid("fillRows");
            $('#dgUser').datagrid('resize');
        },
        onClickCell: function (index, field, value) {
            if (field === 'IsSelect') {
                var row = $('#dgUser').datagrid('getRows')[index];
                row.IsSelect = !row.IsSelect;  // 切换选中状态
                $('#dgUser').datagrid('refreshRow', index);  // 刷新行显示
            }
        },
        onSortColumn: function (order, sort) {
            $("#hSort").val(sort);
            $("#hOrder").val(order);
            /*      loadLocal();*/
        }
    });

    $('#dgMenu').datagrid({
        loadMsg: "Load Data...",
        iconCls: 'icon-reload',
        url: '',
        idField: 'MenuID',
        hight: document.documentElement.clientHeight - 100,
        autoRowHeight: false,   // 自动行高（可能导致行高不一致）
        fitColumns: false,      // 不自动适应列宽（需要手动设置列宽）
        scrollbarSize: 20,       // 滚动条宽度设为0（可能影响布局）
        pageSize: 20,           // 每页20条
        striped: true,          // 隔行变色
        singleSelect: false,     // 单选模式
        pagination: false,       // 显示分页
        rownumbers: true,        // 显示行号
        sortable: true,
        columns: [[

            {
                field: 'IsSelect',
                formatter: function (value, row, index) {
                    return '<input type="checkbox" ' + (value ? 'checked' : '') + '>';
                }
            },
            { field: 'MenuName', title: 'MenuName', width: 200 },
            { field: 'MenuID', hidden: true },
            { field: 'RoleMenuID', hidden: true },
            { field: 'UpMenuID', hidden: true },
            { field: 'MenuType', hidden: true },
            { field: 'MenuNO', title: 'MenuNO', sortable: true, width: 120 },
            { field: 'MenuUrl', title: 'MenuUrl', width: 250 },
            { field: 'MenuTypeName', title: 'MenuTypeName', width: 100 },
            { field: 'ClassName', title: 'ClassName', width: 100 },
            { field: 'NameSpace', title: 'NameSpace', width: 100 },
            { field: 'RStateName', title: 'Recorde State', width: 150 },
            { field: 'RState', hidden: true }
        ]],
        onLoadSuccess: function (data) {
            // $('#dgMenu').datagrid("fillRows");
            $('#dgMenu').datagrid('resize');
        },
        onClickCell: function (index, field, value) {
            if (field === 'IsSelect') {
                var row = $('#dgMenu').datagrid('getRows')[index];
                row.IsSelect = !row.IsSelect;  // 切换选中状态
                $('#dgMenu').datagrid('refreshRow', index);  // 刷新行显示
            }
        },
        onSortColumn: function (order, sort) {
            $("#hSort").val(sort);
            $("#hOrder").val(order);
            /*      loadLocal();*/
        }
    });
    $(window).resize(function () {
        resizeLayout();
        $('#dgRole').datagrid('resize');
        $('#dgUser').datagrid('resize');
        $('#dgMenu').datagrid('resize');
    });
    $('#dd').drawer({
        onCollapse: function () {
        },
        onExpand: function () {
        }
    });

    $("#tt").tabs({
        onSelect: function (title, index) {
            if (index === 0) { // 第一个标签页
                QueryMenu();
            } else if (index === 1) { // 第二个标签页
                QueryUser();
            }
        }
    });
});
function QueryUser() {
    $('#dgUser').datagrid({
        url: '/api/SYS/QueryUserInfoByRole',
        method: 'Get',
        queryParams: {
            RoleID: $('#hRoleID').val()
        },
        loadFilter: function (data) {
            if (data.d) {
                return data.d;
            } else {
                return JSON.parse(data);
            }
        }
    });
}
function QueryMenu() {
    $('#dgMenu').datagrid({
        url: '/api/SYS/QueryMenuInfoByRole',
        method: 'Get',
        queryParams: {
            RoleID: $('#hRoleID').val()
        },
        loadFilter: function (data) {
            if (data.d) {
                return data.d;
            } else {
                return JSON.parse(data);
            }
        }
    });
}

function resizeLayout() {
    var h = $(window).height() - 2;
    $('#lay').layout('resize', {
        width: '100%',
        height: h
    });
    $('#tt').tabs({
        height: h  // 占父容器80%高度
    });
}

function AddNew() {
    $('#hRoleID').val("");
    // $('#txtUserNO').textbox('disable');

    // 启用文本框
    $('#txtRoleNO').textbox('enable');
    $("#txtRoleNO").textbox('setValue', "");
    $("#txtRoleName").textbox('setValue', "");
    $('#dd').drawer('expand');
}
function Save() {
    if (!validateForm()) {
        return;
    }
    var RoleID = $('#hRoleID').val();
    var RoleNO = $("#txtRoleNO").textbox('getValue');
    var RoleName = $("#txtRoleName").textbox('getValue');
    var Info = {
        RoleID: RoleID,
        RoleNO: RoleNO,
        RoleName: RoleName
    }

    var url = '/api/SYS/SaveRoleInfo';
    DataService.AjaxPost(url, Info, function (res) {
        Notice(res.Message);
        Search();
    });
    $('#dd').drawer({
        onCollapse: function () {
            // 抽屉关闭后的逻辑处理
            console.log('抽屉已关闭');
            // 添加您想要执行的操作
        }
    });
}

function Search() {
    var RoleNO = $("#qRoleNO").val();
    var RoleName = $("#qRoleName").val();
    var sort = $("#hSort").val();
    var order = $("#hOrder").val();

    $('#dgRole').datagrid({
        url: '/api/SYS/QueryRoleInfo',
        method: 'Get',
        queryParams: {
            RoleNO: RoleNO,
            RoleName: RoleName,
            sort: sort,
            order: order
        },
        loadFilter: function (data) {
            if (data.d) {
                return data.d;
            } else {
                return JSON.parse(data);
            }
        }
    });
}

function Delete() {
    var Rows = $('#dgRole').datagrid('getSelections');
    if (Rows.length < 1) {
        alert("Please Select One or move Rows");
        return;
    }
    var jsonData = JSON.stringify(Rows);

    var url = '../../api/SYS/DeleteRoleInfo';
    DataService.PostJson(url, jsonData, function (res) {
        Notice(res.Message);
        Search();
    });
}
function getSelectionsFromDOM() {
    var selections = [];
    $('#dgMenu').find('tr.datagrid-row').each(function () {
        var index = $(this).attr('datagrid-row-index');
        var row = $('#dgMenu').datagrid('getRows')[index];
        var isChecked = $(this).find('.my-checkbox').is(':checked');
        if (isChecked) {
            selections.push(row);
        }
    });
    return selections;
}

function SaveMenu() {
    var RoleID = $('#hRoleID').val();
    var Rows = $('#dgMenu').datagrid('getRows');
    if (Rows.length < 1) {
        alert("Please Select One or move Rows");
        return;
    }

    for (var i = 0; i < Rows.length; i++) {
        Rows[i].RoleID = RoleID;
    }

    var jsonData = JSON.stringify(Rows);
    var url = '../../api/SYS/SaveRoleMenu';
    DataService.PostJson(url, jsonData, function (res) {
        Notice(res.Message);
        $('#dgMenu').datagrid('unselectAll');
        $('#dgMenu').datagrid({
            url: '/api/SYS/QueryMenuInfoByRole',
            method: 'Get',
            queryParams: {
                RoleID: RoleID
            },
            loadFilter: function (data) {
                if (data.d) {
                    return data.d;
                } else {
                    return JSON.parse(data);
                }
            }
        });
    });
}

function SaveUser() {
    var RoleID = $('#hRoleID').val();
    var Rows = $('#dgUser').datagrid('getRows');
    if (Rows.length < 1) {
        alert("Please Select One or move Rows");
        return;
    }
    for (var i = 0; i < Rows.length; i++) {
        Rows[i].RoleID = RoleID;
    }
    var jsonData = JSON.stringify(Rows);
    var url = '../../api/SYS/SaveRoleUser';
    DataService.PostJson(url, jsonData, function (res) {
        Notice(res.Message);
        $('#dgUser').datagrid('unselectAll');
        $('#dgUser').datagrid({
            url: '/api/SYS/QueryUserInfoByRole',
            method: 'Get',
            queryParams: {
                RoleID: RoleID
            },
            loadFilter: function (data) {
                if (data.d) {
                    return data.d;
                } else {
                    return JSON.parse(data);
                }
            }
        });
    });
}